/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.mendix.dsl.service.mm.ServiceDsl.util;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

import org.mendix.dsl.service.mm.ServiceDsl.*;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see org.mendix.dsl.service.mm.ServiceDsl.ServiceDslPackage
 * @generated
 */
public class ServiceDslAdapterFactory extends AdapterFactoryImpl {
    /**
     * The cached model package.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected static ServiceDslPackage modelPackage;

    /**
     * Creates an instance of the adapter factory.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public ServiceDslAdapterFactory() {
        if (modelPackage == null) {
            modelPackage = ServiceDslPackage.eINSTANCE;
        }
    }

    /**
     * Returns whether this factory is applicable for the type of the object.
     * <!-- begin-user-doc -->
     * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
     * <!-- end-user-doc -->
     * @return whether this factory is applicable for the type of the object.
     * @generated
     */
    @Override
    public boolean isFactoryForType(Object object) {
        if (object == modelPackage) {
            return true;
        }
        if (object instanceof EObject) {
            return ((EObject)object).eClass().getEPackage() == modelPackage;
        }
        return false;
    }

    /**
     * The switch that delegates to the <code>createXXX</code> methods.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected ServiceDslSwitch<Adapter> modelSwitch =
        new ServiceDslSwitch<Adapter>() {
            @Override
            public Adapter caseServiceModel(ServiceModel object) {
                return createServiceModelAdapter();
            }
            @Override
            public Adapter caseModelElement(ModelElement object) {
                return createModelElementAdapter();
            }
            @Override
            public Adapter caseDtoReference(DtoReference object) {
                return createDtoReferenceAdapter();
            }
            @Override
            public Adapter caseCustomMethod(CustomMethod object) {
                return createCustomMethodAdapter();
            }
            @Override
            public Adapter caseCrudService(CrudService object) {
                return createCrudServiceAdapter();
            }
            @Override
            public Adapter caseSpecialMethod(SpecialMethod object) {
                return createSpecialMethodAdapter();
            }
            @Override
            public Adapter caseServiceMethod(ServiceMethod object) {
                return createServiceMethodAdapter();
            }
            @Override
            public Adapter caseParameter(Parameter object) {
                return createParameterAdapter();
            }
            @Override
            public Adapter caseAssociationMethod(AssociationMethod object) {
                return createAssociationMethodAdapter();
            }
            @Override
            public Adapter defaultCase(EObject object) {
                return createEObjectAdapter();
            }
        };

    /**
     * Creates an adapter for the <code>target</code>.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param target the object to adapt.
     * @return the adapter for the <code>target</code>.
     * @generated
     */
    @Override
    public Adapter createAdapter(Notifier target) {
        return modelSwitch.doSwitch((EObject)target);
    }


    /**
     * Creates a new adapter for an object of class '{@link org.mendix.dsl.service.mm.ServiceDsl.ServiceModel <em>Service Model</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.mendix.dsl.service.mm.ServiceDsl.ServiceModel
     * @generated
     */
    public Adapter createServiceModelAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.mendix.dsl.service.mm.ServiceDsl.ModelElement <em>Model Element</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.mendix.dsl.service.mm.ServiceDsl.ModelElement
     * @generated
     */
    public Adapter createModelElementAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.mendix.dsl.service.mm.ServiceDsl.DtoReference <em>Dto Reference</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.mendix.dsl.service.mm.ServiceDsl.DtoReference
     * @generated
     */
    public Adapter createDtoReferenceAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.mendix.dsl.service.mm.ServiceDsl.CustomMethod <em>Custom Method</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.mendix.dsl.service.mm.ServiceDsl.CustomMethod
     * @generated
     */
    public Adapter createCustomMethodAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.mendix.dsl.service.mm.ServiceDsl.CrudService <em>Crud Service</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.mendix.dsl.service.mm.ServiceDsl.CrudService
     * @generated
     */
    public Adapter createCrudServiceAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.mendix.dsl.service.mm.ServiceDsl.SpecialMethod <em>Special Method</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.mendix.dsl.service.mm.ServiceDsl.SpecialMethod
     * @generated
     */
    public Adapter createSpecialMethodAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.mendix.dsl.service.mm.ServiceDsl.ServiceMethod <em>Service Method</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.mendix.dsl.service.mm.ServiceDsl.ServiceMethod
     * @generated
     */
    public Adapter createServiceMethodAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.mendix.dsl.service.mm.ServiceDsl.Parameter <em>Parameter</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.mendix.dsl.service.mm.ServiceDsl.Parameter
     * @generated
     */
    public Adapter createParameterAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link org.mendix.dsl.service.mm.ServiceDsl.AssociationMethod <em>Association Method</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see org.mendix.dsl.service.mm.ServiceDsl.AssociationMethod
     * @generated
     */
    public Adapter createAssociationMethodAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for the default case.
     * <!-- begin-user-doc -->
     * This default implementation returns null.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @generated
     */
    public Adapter createEObjectAdapter() {
        return null;
    }

} //ServiceDslAdapterFactory
